/*
	js公用方法
	依赖：
		jquery 
		layui
*/
//信息提示
const MESSAGES = {
	'service_error': '发生系统错误，请联系系统管理员！',
	'Logon_failure': '您的登录凭据失效，请重新登录...',
	'welcome_admin': '欢迎回来，管理员:',
	'info_checkout_failure':'信息校验失败，失败原因：',
	'quit_of_system':'退出登录成功，正在为您跳转...',
	'login_success': '登陆成功，正在为您跳转...',
	'get_form_error': '获取信息失败，失败原因：',
	'stop_user':'确认用户更改当前用户状态—>停止？',
	'enable_user':'确认用户更改当前用户状态—>启用？',
	'change_user_status_success': '修改用户状态成功',
	'confirm_delete_product':'确认删除该商品（不可恢复）？',
	'confirm_modify_product':'确认商品以上述数据存储？',
	'confirm_modify_psn':'确认以上述信息修改商品序列号？',
	'delete_product_success':'删除商品成功！正在刷新当前页面...',
	'confirm_add_product':'确认以上述信息新增商品？',
	'add_new_product_success':'新增商品信息成功，正在为您跳转...',
	'modify_info_success': '修改信息成功，正为您刷新页面...',
	'confirm_add_psn':'确定以上述信息新增序列号？',
	'confirm_add':'确认进行新增？',
	'confirm_modify':'确认以上述信息进行更改？',
	'confirm_delete':'确认删除当前项？',
	'delete_success':'删除成功，正在为您跳转...',
}
//订单状态
const ORSER_STATUS_DICT = {
    '0':'未支付',
    '1':'已支付',
    '2':'已确认',
    '3':'已发货',
    '4':'运输中',
    '5':'已收货',
    '6':'已完成',
    '7':'已废弃',
    '8':'已停止',
}

const WEB_SETTING_OPTIONS = {
	'cookies_save_path': 'kplus-helmet.201807',
}
//服务器地址
const BASE_SERVICEURL = 'http://127.0.0.1:8080';
//const BASE_SERVICEURL = 'http://kps2018t.123api.cn';
//接口地址
const URlS = {
    'admin':'/api/v3/a/a',
    'agent':'/api/v3/agt',
    'upload':'/api/v3/w/upload',
    'news':'/api/v3/news',
    'ptl':'/api/v3/w/ptl',
    'product':'/api/v3/w/p',
    'order':'/api/v3/o/od',
    'dict':'/api/v3/w/dict',
    'psn':'/api/v3/w/psn',
    'au':'/api/v3/a/au',
    'video':'/api/v3/video',
    'page':'/api/v3/page'
}
//dom HTML结构字符串
var DOMHTMLSTRINGS = {
	img_option_box: function(i){
		return '<div class="layui-form-item" id="productImg'+i+'">'+
'                    <label for="" class="layui-form-label">'+
'                        <span class="x-red">*</span>产品图 '+i+''+
'                    </label>'+
'                    <div class="layui-input-inline" style="width:60%">'+
'                        <input type="text" name="productImg'+i+'" required lay-verify="required" autocomplete="off" class="layui-input">'+
'                    </div>'+
'                    <a class="layui-btn" onclick="checkImg(\'productImg'+i+'\')">检查</a>'+
'					<div class="position-box">'+
'                    <a class="layui-btn layui-btn-warm">变更</a>'+
'                    <input type="file" data-op="productImg'+i+'" onchange="addOrChangeProImg(\'imgGuploadFile'+i+'\')" name="imgGuploadFile'+i+'" class="hidden-upload-btn">'+
'                	</div>' +
'                    <a class="layui-btn layui-btn-danger" onclick="deleteImg(\'productImg'+i+'\')">删除</a>'+
'                </div>'; 
	},
	active_select_btn: function(data ,i){
		return '<input lay-filter="ptl" name="ptl'+i+'" value="'+data[i].wPtl+'" type="checkbox" title="' + data[i].ptlName.cn + '">';
	},
	agent_list_opt: function(data, i){
		return '<option value="'+ data[i].agt_code+'">'+ data[i].agt_name.cn+'</option>';
	},
	new_banner_img: function(i){
		return '<div class="layui-form-item" id="newsImg'+i+'">'+
'                    <label for="" class="layui-form-label">'+
'                        轮播图 '+i+''+
'                    </label>'+
'                    <div class="layui-input-inline" style="width:60%">'+
'                        <input type="text" name="newsImg'+i+'" autocomplete="off" class="layui-input">'+
'                    </div>'+
'                    <div class="position-box">'+
'                        <a class="layui-btn layui-btn-warm">添加</a>'+
'                        <input type="file" onchange="addOrChangeProImg(\'upLoadNewsImg'+i+'\')" '+
'                        name="upLoadNewsImg'+i+'" data-op="newsImg'+i+'" class="hidden-upload-btn">'+
'                    </div>'+
'                    <a class="layui-btn layui-btn-danger" onclick="deleteImg(\'newsImg'+i+'\')">删除</a>'+
'                    <a class="layui-btn" onclick="checkImg(\'newsImg'+i+'\')">检查</a>'+
'                </div>';
	},
	top_banner_item: function(data, i){
		return '<div><img src="'+data[i].img+'-830_280">'
				+'<div class="text">'
				+'<p class="t_1">'+data[i].cn[0]+'</p>'
				+'<p class="t_2">'+data[i].cn[1]+'</p>'
				+'<p class="t_3">'+data[i].cn[2]+'</p>'
				+'</div></div>'
	}
}
//敏感信息隐藏
function shoutOfString(str, limit) {
    var a = str.split("");
    var h = '*';
    for (var i = 0; i < a.length - limit * 2;i++){
        h = h + '*'
    }
    return a.slice(0, limit).join("") + h + a.slice(a.length - limit, a.length).join("");
}
//长字符串截取
function LongStrToSubstr(str, sub){
	if(sub > str.length) return str;
	if(typeof(sub) == 'Number') return str.split('').slice(0, sub).join('');
} 
// 标准时间输出
function formatTime(ioTime){
	var time = ioTime.year + '-' 
				+ ioTime.month + '-' 
				+ ioTime.day + ' ' 
				+ ioTime.hour + ':' 
				+ ioTime.minute + ':' 
				+ ioTime.second;
    return time
}
//获取url参数
function getParam(paramName) {
    paramValue = "", isFound = !1;
    if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) {
        arrSource = unescape(this.location.search).substring(1, this.location.search.length).split("&"), i = 0;
        while (i < arrSource.length && !isFound) arrSource[i].indexOf("=") > 0 && arrSource[i].split("=")[0].toLowerCase() == paramName.toLowerCase() && (paramValue = arrSource[i].split("=")[1], isFound = !0), i++
    }
    return paramValue == "" && (paramValue = null), paramValue
} 

//for each 对象
function forEachObj(obj){
	var _str = '';
	$.each(obj, function(key, value){
		_str = _str + key + ':' + value + ';';
	})
	return _str;
}
//
function spliceArr(arr){
	var _str = '';
	if(arr.__proto__.constructor == Array){
		arr.forEach(function(item, index){
			if(index === 0 && arr.length === 1){
				 _str = arr[index]; 
			}else if(index === arr.length - 1){
				_str = _str + arr[index];
			}else{
				_str = _str + arr[index] + '|';
			}
		});
	}else{
		return "NOTHING";
	};
	return _str;
}
//语言排序对象
function langTransObj(cnObj, twObj, enObj){
	return 'cn:' + cnObj + '|tw:' + twObj + '|en:' + enObj
};
// check 图片链接
function checkImg(ipt_name){
	var ipt = $('input[name="'+ipt_name+'"]').val();
	layui.use(['layer'], function(){
		var layer = layui.layer;
		layer.open({
			type: 1,
			skin: 'layui-layer-rim',
			anim: 2, 
			area: ['680px', '460px'],
			content: '<img src="'+ipt+'" style="display: block;width:100%;height: 100%;">'
		})
	});
}
//文件上传函数
function updateFile(form_data, callback) {
	layui.use(['layer'], function(){
		var layer = layui.layer; 
		var loadIndex1 = layer.load(1, { shade: [0.5, '#000'] });
		$.ajax({
		    url:BASE_SERVICEURL + URlS.upload,
		    type:'post',
		    data: form_data,
		    processData: false,
		    contentType: false,
		    async: false,
		    success: function (data) { 
		        if(data.msg.code == 200){
		            //console.log(data)
		            callback(data);
		            layer.close(loadIndex1)
		        }else{
		            layer.msg(data.msg.msg, {time:4000})
		            layer.close(loadIndex1)
		        }
		    }
		})
	})
};
//变更或新增图片
function addOrChangeProImg(ipt_name){
	//对象
	var $this = $('input[name="'+ipt_name+'"]');
	//登录信息
	var adminLoginedInfo = Cookies.getJSON('kplus_ad_logined_info');
	var file = $this[0].files[0],         // 获取文件对象
        fileName = file.name,                //文件名
        fizeSize = file.size,                //文件大小
        fileExt = fileName.split('.')[1],   //文件扩展名 
        fileType = file.type,               // 文件类型
        _this = $this;                    //操作对象
    //判断文件类型
    if(typeof(file) == 'undefined' || file.size <= 0){ 
        layer.msg('文件大小错误，请重新上传!',{time: 4000})
        $(this).file[0].value = '';
        return false;
    }
    fileReader = new FileReader();
    fileReader.onload = function (e) {
        var hexHash = SparkMD5.hash(e.target.result);
        //console.log(hexHash)
        var formfile = new FormData();  //穿件formData 对象
        formfile.append('file', file)   //文件对象
        formfile.append('fileName', fileName)
        formfile.append('fileExt', fileExt)
        formfile.append('hexHash', hexHash)
        formfile.append('aId', adminLoginedInfo.aId)
        formfile.append('aToken', adminLoginedInfo.aToken)
        formfile.append('storage','kplus-helmet/web/product/IMG/')  //存储地址
        //上传文件
        updateFile(formfile , function(data){
        	$('input[name="'+ _this.attr('data-op') +'"]').val(data.data.src);
        });
    }
    fileReader.readAsDataURL(file) //读取文件 
}
//删除商品图片
function deleteImg(id){
	
	layui.use('layer', function(){
		var layer = layui.layer;
		if(id === 'productImg0' || id === 'newsImg0'){
			layer.msg('首图无法被删除！', {time: 2000});
			return false;
		};
		//获取节点
		var itme = $('#'+ id +'');
		//删除节点
		itme[0].parentNode.removeChild(itme[0]);
	})
}

//添加新图片进入列表
function addNewImgToList(){
	//插入dom
	if($('#new-banner-box')){
		var img_ipt = $('#new-banner-box input.layui-input');
		var _index =  img_ipt.length;  //新增图片序号
		var item = DOMHTMLSTRINGS.new_banner_img(_index);
		$('#new-banner-box').append(item);
	};
	if($('#product-imgs-form')){
		var img_ipt = $('#product-imgs-form input.layui-input');
		var _index =  img_ipt.length;  //新增图片序号
		var item = DOMHTMLSTRINGS.img_option_box(_index);
		$('#product-imgs-form').append(item);
	};
}
//对比两个对象，返回相同属性的不同值，以2覆盖1 返回
function isObjectValueEqual(obj1, obj2){
	var unEqualObj = {};
	$.each(obj1, function(key, value){
		if(obj1[key] == obj2[key]){  //键值对应

		}else{  //不对应
			unEqualObj[key] = obj2[key];
		}
	});
	return unEqualObj;
}
//构建字典
function createDicts(dictData){
	var agtCode = $('select[name="agtCode"]'); 
	var belong = $('select[name="belong"]');
	//渠道代理字典
	$.each(dictData.agt, function(key, value){
		var option = '<option value="' + key+ '" title="'+value+'">' + value + '</option>';
		agtCode.append(option);
	});
	//所属商品
	$.each(dictData.pName, function(key, value){
		var option = '<option value="' + key+ '" title="'+value+'">' + value + '</option>';
		belong.append(option);
	})
}




